import axios from 'axios'
import type { AxiosRequestConfig } from 'axios'
import { message } from 'ant-design-vue'
//  如果你们项目里 有多个后端的地址  那么你可以创建多个实例

axios.defaults.baseURL = import.meta.env.VITE_BASEURL

//  可能公司  开始的时候 是部门内网             (交换机) 192.168.1.222/admin/login
//  做好以后 测试是 公司内网                    192.168.3.101/admin/login
//  正式发布的时候 不会是局域网 是互联网         www.xx.com/admin/login

//   根据不同的环境 去设置不同的  请求url

axios.interceptors.request.use(
  function (config: any) {
    //  访问数据时需要提供自己的身份信息
    // 身份信息 基本上每个接口都需要这个认证的数据
    // 所以把他放在这个拦截器里最为合适

    let token = localStorage.getItem('token')
    config.headers.authorization = 'Bearer ' + token

    //   规范的写法 通用的写法上都是这个

    return config
  },
  function (err) {
    return Promise.reject(err)
  }
)

axios.interceptors.response.use(
  function (res) {
    return res.data
  },
  function (err) {
    // if(err)
    //   判断目前的code  状态码  如果是400  就提示
    // 把本地存储的token删了
    // 跳转到登录页
    return Promise.reject(err)
  }
)

export default axios
